package com.ruoyi.product.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品订单对象 product_order
 * 
 * @author guoguoa
 * @date 2025-01-07
 */
public class ProductOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 运费价格 */
    @Excel(name = "运费价格")
    private Double freightPrice;

    /** 商品数量 */
    @Excel(name = "商品数量")
    private Integer productNumber;

    /** 订单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private Integer stateId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private Integer productId;

    /** 商品规格 */
    @Excel(name = "商品规格")
    private Integer typeId;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private Integer paytypeId;

    /** 优惠卷名 */
    @Excel(name = "优惠卷名")
    private Integer couponhaveId;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private Integer addressId;

    /** 订单用户 */
    @Excel(name = "订单用户")
    private Integer userId;

    /** 状态 */
    @Excel(name = "状态")
    private Integer del;

    /** 状态 */
    @Excel(name = "订单状态")
    private ProductState productState;
    /** 状态 */
    @Excel(name = "商品详情")
    private ProductDetail productDetail;
    /** 状态 */
    @Excel(name = "商品规格")
    private ProductType productType;
    /** 状态 */
    @Excel(name = "支付方式")
    private PayType payType;
    /** 状态 */
    @Excel(name = "优惠卷名")
    private  CouponHave couponHave;
    /** 状态 */
    @Excel(name = "收货地址")
    private  DeliveryAddress deliveryAddress;
    /** 状态 */
    @Excel(name = "订单用户")
    private SysUser sysUser;
    /** 订单评价 */
    @Excel(name = "订单评价")
    private ProductComment productComment;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setFreightPrice(Double freightPrice) 
    {
        this.freightPrice = freightPrice;
    }

    public Double getFreightPrice() 
    {
        return freightPrice;
    }
    public void setProductNumber(Integer productNumber) 
    {
        this.productNumber = productNumber;
    }

    public Integer getProductNumber() 
    {
        return productNumber;
    }
    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }
    public void setStateId(Integer stateId) 
    {
        this.stateId = stateId;
    }

    public Integer getStateId() 
    {
        return stateId;
    }
    public void setProductId(Integer productId) 
    {
        this.productId = productId;
    }

    public Integer getProductId() 
    {
        return productId;
    }
    public void setTypeId(Integer typeId) 
    {
        this.typeId = typeId;
    }

    public Integer getTypeId() 
    {
        return typeId;
    }
    public void setPaytypeId(Integer paytypeId) 
    {
        this.paytypeId = paytypeId;
    }

    public Integer getPaytypeId() 
    {
        return paytypeId;
    }
    public void setCouponhaveId(Integer couponhaveId) 
    {
        this.couponhaveId = couponhaveId;
    }

    public Integer getCouponhaveId() 
    {
        return couponhaveId;
    }
    public void setAddressId(Integer addressId) 
    {
        this.addressId = addressId;
    }

    public Integer getAddressId() 
    {
        return addressId;
    }
    public void setUserId(Integer userId) 
    {
        this.userId = userId;
    }

    public Integer getUserId() 
    {
        return userId;
    }
    public void setDel(Integer del) 
    {
        this.del = del;
    }

    public Integer getDel() 
    {
        return del;
    }

    public ProductState getProductState() {
        return productState;
    }

    public void setProductState(ProductState productState) {
        this.productState = productState;
    }

    public ProductDetail getProductDetail() {
        return productDetail;
    }

    public void setProductDetail(ProductDetail productDetail) {
        this.productDetail = productDetail;
    }

    public ProductType getProductType() {
        return productType;
    }

    public void setProductType(ProductType productType) {
        this.productType = productType;
    }

    public PayType getPayType() {
        return payType;
    }

    public void setPayType(PayType payType) {
        this.payType = payType;
    }

    public CouponHave getCouponHave() {
        return couponHave;
    }

    public void setCouponHave(CouponHave couponHave) {
        this.couponHave = couponHave;
    }

    public DeliveryAddress getDeliveryAddress() {
        return deliveryAddress;
    }

    public void setDeliveryAddress(DeliveryAddress deliveryAddress) {
        this.deliveryAddress = deliveryAddress;
    }

    public SysUser getSysUser() {
        return sysUser;
    }

    public void setSysUser(SysUser sysUser) {
        this.sysUser = sysUser;
    }

    public ProductComment getProductComment() {
        return productComment;
    }

    public void setProductComment(ProductComment productComment) {
        this.productComment = productComment;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("freightPrice", getFreightPrice())
            .append("productNumber", getProductNumber())
            .append("orderTime", getOrderTime())
            .append("stateId", getStateId())
            .append("productId", getProductId())
            .append("typeId", getTypeId())
            .append("paytypeId", getPaytypeId())
            .append("couponhaveId", getCouponhaveId())
            .append("addressId", getAddressId())
            .append("userId", getUserId())
            .append("del", getDel())
            .append("productState", getProductState())
            .append("productDetail", getProductDetail())
            .append("productType", getProductType())
            .append("payType", getPayType())
            .append("couponHave", getCouponHave())
            .append("deliveryAddress", getDeliveryAddress())
            .append("sysUser", getSysUser())
            .append("productComment", getProductComment())
            .toString();
    }
}
